package jxtend.annotation.keyword.workinprogress;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Marks a method / constructor parameter or method return value as being potentially null.
 * <p>
 * <strong>NOTE</strong>: At default all parameters and return value are considered <strong>non null</strong> in
 * J-xtend.<br>
 * This is enforced by throwing a NullPointerException in case a parameter <strong>without</strong> a
 * {@code @nullable} turns a to do contain a <code>null</code> value
 * </p> 
 */
@Retention(RetentionPolicy.SOURCE)
@Target({ ElementType.METHOD, ElementType.PARAMETER })
public @interface nullable {

}
